/*
		memcpy函数的模拟实现

		夏思成

		2024年4月2日

		西科大15号公寓楼
*/


#include <stdio.h>
#include <assert.h>

void* my_memcpy(void* destination, const void* source, size_t num)
{
	assert(destination && source);

	//记录目标地址的首地址，到时候返回该地址
	void* ret = destination;

	while (num--)
	{
		//将指针转换成char*类型，一个一个字节的复制
		*((char*)destination) = *((char*)source);

		destination = (char*)destination + 1;
		source = (char*)source + 1;
	}
	return ret;
}

int main()
{
	char arr1[20] = "abc";
	char arr2[] = "xx";

	char* ret = (char*)my_memcpy(arr1, arr2,sizeof(char)*2);

	printf("%s\n", ret);
	return 0;
}